3d videogame system

ABSTRACT

A 3D videogame system capable of displaying a left-right sequences through a different, independent VGA or video channel, with a display device sharing a memory in an immerse manner. The system has a videogame engine controlling and validating the image perspectives, assigning textures, lighting, positions, movements and aspects associated with each object participating in the game; creates left and right backbuffers, creates images and presents the information in the frontbuffers. The system allows handling the information of data associated to the xyz coordinates of the object&#39;s image in real-time, increases the RAM for the left-right backbuffer, with the possibility to discriminate and take the corresponding backbuffer, whose information is sent to the frontbuffer or additional independent display device sharing a memory in an immerse manner.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/710,191, filed Feb. 22, 2010, which is a continuation of U.S.application Ser. No. 11/471,280, filed Jun. 19, 2006, issued as U.S.Pat. No. 7,666,096 on Feb. 23, 2010, titled “3D Videogame System,” whichis a continuation of PCT Application No. PCT/MX2003/000112, filed onDec. 19, 2003, published in the Spanish language. The disclosures of allthe above-referenced applications, publications, and patents areconsidered part of the disclosure of this application, and areincorporated by reference herein in their entirety.

FIELD OF THE INVENTION

The present invention is related to the display of three-dimensionaltelevision images, more specifically to a hardware and software designfor viewing three-dimensional (3D) images, easy to be integrated to theexisting television, personal computer and videogame system equipment.

BACKGROUND OF THE INVENTION

The visual man-machine interface is constantly trying to improve theimages for a wide range of applications: military, biomedical research,medical imaging, genetic manipulation, airport security, entertainment,videogames, computing, and other display systems.

Three-dimensional (3D) information is the key for achieving success incritical missions requiring realistic three-dimensional images, whichprovide reliable information to the user.

Stereoscopic vision systems are based on the human eye's ability to seethe same object from two different perspectives (left and right). Thebrain merges both images, resulting in a depth and volume perception,which is then translated by the brain into distance, surface andvolumes.

In the state-of-the-art, several attempts have been made in order toachieve 3D images, e.g., the following technologies have been used:

Red-blue polarization

Vertical-horizontal polarization

Multiplexed images glasses.

3D virtual reality systems

Volumetric displays

Auto-stereoscopic displays

All of the aforementioned technologies have presentationincompatibilities, collateral effects and a lack of compatibility withthe current existing technology.

For example, red-blue polarization systems require, in order to bewatched, a special projector and a large-size white screen; after a fewminutes, collateral effects start appearing, such as headache,dizziness, and other symptoms associated to images displayed using athree-dimensional effect. This technology was used for a long time incinema display systems but, due to the problems mentioned before, thesystem was eventually withdrawn from the market. Collateral symptoms arecaused by the considerable difference in the content received by theleft eye and the right eye (one eye receives blue-polarized informationand the other receives red-polarized information), causing an excessivestress on the optical nerve and the brain. In addition, two images aredisplayed simultaneously. In order to be watched, this technologyrequires an external screen and the use of polarized color glasses. Ifthe user is not wearing red-blue glasses, the three-dimensional effectcannot be watched, but instead only double blurry images are watched.

The horizontal-vertical polarization system merges two images taken by astereoscopic camera with two lenses; the left and right images have ahorizontal and vertical polarization, respectively. These systems areused in some new cinema theaters, such as Disney® and IMAX®3D theaters.This technology requires very expensive production systems and isrestricted to a dedicated and selected audience, thus reducing themarket and field of action. A special interest in the three-dimensional(3D) format has grown during the past three years; such is the case ofTom Hanks' productions and Titanic, which have been produced with 3Dcontent by IMAX3D technology. However, this technology also results incollateral effects for the user after a few minutes of display, requiresan external screen and uses polarized glasses; if the user is notwearing these glasses, only blurred images can be watched.

Systems using multiplexed-image shutting glasses technology toggle leftand right images by blocking one of these images, so it cannot get tothe corresponding eye for a short time. This blocking is synchronizedwith the image's display (in a monitor or TV set). If the user is notwearing the glasses, only blurred images are seen, and collateraleffects become apparent after a few minutes. This technology iscurrently provided by (among others), BARCO SYSTEMS for Mercedes Benz®,Ford® and Boeing® companies, by providing a kind of “room” to create 3Dimages by multiplexing (shutter glasses) in order to produce theirprototypes before they are assembled in the production line.

3D virtual reality systems (VR3D) are computer-based systems that createcomputer scenes that can interact with the user by means of positioninterfaces, such as data gloves and position detectors. The images arecomputer generated and use vector, polygons, and monocular depthreproduction based images in order to simulate depth and volume ascalculated by software, but images are presented using a helmet as adisplaying device, placed in front of the eyes; the user is immersed ina computer generated scene existing only in the computer and not in thereal world. The name of this computer-generated scene is “VirtualReality”. This system requires very expensive computers, such as SGIOxygen® o SGI Onyx Computers®, which are out of reach of the commonuser. Serious games and simulations are created with this technology,which generates left-right sequences through the same VGA or videochannel, the software includes specific instructions for toggling videoimages at on-screen display time at a 60 Hz frequency. The videogamesoftware or program interacts directly with the graphics card.

There is a technology called I-O SYSTEMS, which displays multiplexedimages in binocular screens by means of a left-right multiplexion systemand toggling the images at an 80 to 100 Hz frequency, but even then theflicker is perceived.

Only a few manufacturers, such as Perspectra Systems®, create volumetricdisplay systems. They use the human eye capability to retain an imagefor a few milliseconds and the rotation of a display at a very highspeed; then, according to the viewing angle, the device shows thecorresponding image turning the pixels' color on and off, due to thedisplay's high speed rotation the eye can receive a “floating image”.These systems are very expensive (the “sphere” costs approximately50,000 USD) and require specific and adequate software and hardware.This technology is currently used in military applications.

Auto-stereoscopic displays are monitors with semi-cylindrical linesrunning from top to bottom and are applied only to front and backimages; this is not a real third dimension, but only a simulation in twoperspective planes. Philips® is currently working in thisthree-dimension technology as well as SEGA® in order to obtain atechnological advantage. Results are very poor and there is a resolutionloss of 50%. This technology is not compatible with the presenttechnological infrastructure and requires total replacement of theuser's monitor. Applications not specifically created for thistechnology are displayed blurred, making them totally incompatible withthe inconveniencies of the current infrastructure. In order to watch a3D image, the viewer needs to be placed at an approximate distance of16″ (40.64 cm), which varies according to the monitor's size, and theviewer must look at the center of the screen perpendicularly and fixhis/her sight in a focal point beyond the real screen. With just alittle deviation of the sight or a change in the angle of vision, thethree-dimensional effect is lost.

In the state-of-the-art, there are several patents, which are involvedin the development of this technology, namely:

U.S. Pat. No. 6,593,929, issued on Jul. 15, 2003 and U.S. Pat. No.6,556,197, issued on Apr. 29, 2003, granted to Timothy Van Hook, et al.,refer to a low cost video game system which can model athree-dimensional world and project it on a two-dimensional screen. Theimages are based on interchangeable viewpoints in real-time by the user,by means of game controllers.

U.S. Pat. No. 6,591,019, issued on Jul. 8, 2003, granted to ClaudeComair et al., uses the compression and decompression technique for thetransformation of a matrix into 3D graphical systems generated by acomputer. This technique consists in converting real numbers matrixesinto integer matrixes during the zeroes search within the matrix. Thecompressed matrixes occupy a much smaller space in memory and 3Danimations can be decompressed in real-time in an efficient manner.

U.S. Pat. No. 6,542,971, issued on Apr. 1, 2003, granted to David Reed,provides a memory access system and a method which uses, instead of anauxiliary memory, a system with a memory space attached to a memorywhich writes and reads once the data input from one or more peripheraldevices.

U.S. Pat. No. 6,492,987, issued on Dec. 10, 2002, granted to StephenMorein, describes a method and device for processing the elements of theobjects not represented. It starts by comparing the geometricalproperties of at least one element of one object with representativegeometric properties by a pixels group. During the representation of theelements of the object, a new representative geometric property isdetermined and is updated with a new value.

U.S. Pat. No. 6,456,290, issued on Sep. 24, 2002, granted to VimalParikh et al., provides a graphical system interface for the applicationof a use and learning program. The characteristic includes the uniquerepresentation of a vertex which allows the graphic line to retain thevertex status information, projection matrix and immersion buffer framecommands are set.

Any videogame is a software program written in some computer language.Its objective is to simulate a non-existent world and take a player oruser into this world. Most videogames are focused in enhancing thevisual and manual dexterity, pattern analysis and decision taking, in acompetitive and improvement (difficulty level) environment, and arepresented in large scenarios with a high artistic content. As a gameengine, most videogames are divided into the following structure:videogame, game library with graphics and audio engines associated, thegraphical engine contains the 2D source code and the 3D source code, andthe audio engine contains the effects and music code. Every block of thegame engine mentioned is executed in a cyclic way called a game loop,and each one of these engines and libraries is in charge of differentoperations, by example:

Graphics engine: displays images in general

2D source code: static images, “backs” and “sprites” appearing in avideogame screen.

3D source code: dynamic, real-time vector handled images, processed asindependent entities and with xyz coordinates within thecomputer-generated world.

Audio engine: sound playback

Effects code: when special events happen, such as explosions, crashes,jumps, etc.

Music code: background music usually played according to the videogame'sambience.

The execution of all these blocks in a cyclic way allows the validationof current positions, conditions and game metrics. As a result of thisinformation the elements integrating the videogame are affected.

The difference between game programs created for game consoles andcomputers is that originally, the IBM PC was not created for playing init. Ironically, many of the best games run under an IBM PC-compatibletechnology. If we compare the PCs of the past with the videogames andprocessing capabilities of the present, we could say that PCs werecompletely archaic, and it was only by means of a low-level handling(assembly language) that the first games were created, making direct useof the computer's graphics card and speaker. However, the situation haschanged. The processing power and graphics capabilities of present CPUs,as well as the creation of cards specially designed for graphicsprocesses acceleration (GPUs) have evolved to such a degree that theysurpass by far the characteristics of the so-called supercomputers inthe 1980s.

In 1996, a graphics acceleration system known as “hardware acceleration”was introduced which included graphics processors capable of makingmathematical and matrix operations at a high speed. This reduced themain CPU's load by means of card-specific communications and aprogramming language, located in a layer called a “Hardware AbstractionLayer” (HAL). This layer allows the information handling of dataassociated to real-time xyz coordinates, by means of coordinate matrixesand matrix mathematical operations, such as addition, scalarmultiplication and floating point matrix comparison.

BRIEF DESCRIPTION OF THE INVENTION

An object of the present invention is to solve the incompatibilityproblems of the technologies for a three-dimensional image display.

Another object of the present invention is to provide a multi-purposetechnology which allows the final user to watch video images, computergraphics, videogames and simulations with the same device.

An additional object of the present invention is to provide a technologywhich eliminates the collateral effects produced after watching thethree-dimensional images provided by the present technologies, even forhours of constant use.

It is an additional object of the present invention to provide atechnologically advanced integration in software by the creation of apair of buffers corresponding to the left eye and the right eye, andhardware with an additional, independent display device which shares thememory in an immerse form, along with digital video image processors.

It is another object of the present invention to display the imagephysically on-screen by means of two front buffers created by graphicsprocess units or GPUs.

Is still another object of the present invention to obtain brainperceptions of depth and volume with highly realistic images, even ifthey are created by computer graphics software.

Is still other object of the present invention to provide a TDVision®algorithm to create highly realistic computer images.

It is another object of the present invention to make changes in thecurrent technological base to create a new digital imaging process withoptical techniques in order to achieve a real image perception bysetting the view of a right side camera.

It is another object of the present invention to achieve digital mediaconvergence, wherein a DVD-playing computer, a movie-producing laptop,the video-image transmission capability of the internet, and PC andvideo game consoles can be used in the internet structure.

It is another object of the present invention to provide a new assemblylanguage algorithm, analog and digital hardware to obtain the bestadaptation to the existing technologies' 3D equipment.

It is still another object of the present invention to providethree-dimensional visual computer systems for the generation ofstereoscopic images by means of animation, display and softwaremodeling.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows the TDVision® videogame technology map.

FIG. 2 shows the main structure for a videogame based on the previousart.

FIG. 3 shows the one embodiment of a three-dimensional element forconstructing an object in a certain position in space.

FIG. 4 shows the development outline of a videogame program based on theOpenGL and DirecTX API functions technologies.

FIG. 4 a shows a block diagram of one embodiment of an algorithm forcreating the left and right buffers, and additionally discriminating ifTDVision technology is used.

FIG. 4 b shows a block diagram of a subroutine for setting the rightcamera view after drawing an image in the right backbuffer as a functionof the right camera vector. The subroutine also discriminates if theTDVision technology format is used.

FIG. 5 shows a block diagram of the computing outline of themodifications to the graphical adapter for compiling the TDVisiontechnology. It also allows the communication and contains theprogramming language and allows the information handling of the dataassociated with the images set.

FIG. 6 represents a block diagram of an algorithm which allows thedrawing of information in the TDVision backbuffer and presenting iton-screen in DirecTX 3D format.

FIG. 7 shows the display sequence using the OpenGL format.

FIG. 8 shows the block diagram of the on-screen information display bymeans of the left and right backbuffers using the OpenGL algorithm.

FIG. 9 shows the changes needed in the video card used for the TDVisiontechnology.

DETAILED DESCRIPTION OF THE INVENTION

Videogames are processes which start by providing a plurality ofindependently related logical states which include a set of programmingoptions, where each programming option corresponds to different imagecharacteristics. The generic program instructions can be compiled into acode by several computing devices, without having to independentlygenerate the object codes for each device.

The computer devices, such as personal computers, laptops, videogames,etc., include central processing units, memory systems, video graphicalprocessing circuits, audio processing circuits and peripheral ports.Typically, the central processing unit processes software in order togenerate geometric data referring to the image to be displayed andprovides the geometric data to the video graphics circuit, whichgenerates the pixel data stored in a memory frame where the informationis sent to the display device. The aforementioned elements as a wholeare typically called the videogame engine.

Some video game engines are licensed to a third party, as in the case ofthe Quake III Arena® program, which has the QUAKE ENGINE game engine;this engine was licensed to the VOYAGER ELITE FORCE game which uses thequake engine. This way, the game developers can concentrate in the gamemetrics, instead of having to develop a game engine from scratch.Originally, videogames used only two-dimensional images, called“sprites”, which were the game's protagonists.

Most of the videogames and technologies have evolved and now allowworking with simulated objects in a three-dimensional environment orworld, giving each object xyz position properties, surrounded by otherobjects with the same characteristics and acting together within a worldwith a (0,0,0) origin.

At first, videogame consoles, separated from the computer world, tookthe first step to incorporate 3D graphics as a physical graphicscapability of the devices. Techniques later were adopted by the hardwareused in PCs. A circumstance-analysis element is also included, usuallyknown as videogame applied artificial intelligence. This elementanalyzes the situation, positions, collisions, game risks andadvantages, and based on this analysis, generates a response action foreach object participating in the videogame.

A backbuffer is used, which is a memory location where the image to bedisplayed is temporarily “drawn” without outputting it to the videocard. If this is done directly on the video memory screen, a flicker onthe screen would be observed; therefore the information is drawn andprocessed quickly in the backbuffer. This backbuffer is usually locatedwithin the physical RAM memory of the video or graphics accelerationcard.

A typical sequence within a videogame's algorithm would be:

Display title screen

Load characters, objects, textures and sounds into memory

Create a memory location for temporary processing, called doublebufferor backbuffer.

Display background

Record the image under each element participating in the game

Clean all elements from memory (doublebuffer)

User input verification and player's position update

Enemy position processing by means of artificial intelligence (AI)

Move every participant object to its new position

Objects collision verification

Animation frame increment

Draw objects in backbuffer memory

Transfer backbuffer data to the screen

Go back to step 5, unless the user wants to end the game (step 15)

Delete all objects from memory

End game.

The most commonly used devices in a video game console are: The CPU orCentral Processing Unit, which handles the game loop, user input fromthe keyboard, mouse or game devices as a gamepad or joystick and thegame's artificial intelligence processing.

The GPU or Graphics Processing Unit handles the polygon modeling,texture mapping, transformations and lighting simulation.

The audio DSP or Digital Signal Processor handles the background music,sound effects and 3D positional sounds.

The graphics engine is the game section in charge of controlling andvalidating perspectives, assigning textures (metal, skin, etc.),lighting, positions, movements and every other aspect associated to eachobject participating in the videogame, for a videogame console or PC.This image set is processed in relation to the assigned origin point andcalculating the distance, depth and position perspectives. This is madein two steps, but it is a complex process due to the mathematicaloperations involved, namely, the object translation process (offset fromorigin), and the object rotation process (rotation angle in relation tothe current position).

It is important to note that the minimum image units (FIG. 3) arecomprised of minimum control units called a “vertex”, which representone point in the xyz space. The minimum geometrical unit allowed is thetriangle constructed by a minimum of three points in space; from thetriangle base unit larger objects are formed, comprised of thousands ofsmaller triangles, as the Mario Sunshine character. This representationis called “Mesh” and texture, color and even graphical displaycharacteristics can be associated to each mesh or even to each triangle.This information is denominated 3D graphics. It should be noted thateven when it is called a 3D graphic due to its nature, constructed byxyz vectors, the final display to the user is generally in 2D, in a flatengine with content based on 3D vectors seen by the user as if they werein front of him, they only appear to have some intelligent depth andlighting characteristics, but for the brain they do not appear to have avolume in space.

Originally, it was necessary for the videogame programs to communicatedirectly with the graphics card to execute acceleration and complexmathematics operations, which meant that a game had to be practicallyrewritten in order to support a different video card. Facing thisproblem, Silicon Graphics® focused in developing a software layer(OpenGL®) which communicated directly with the hardware, with a seriesof useful functions and subroutines which, independently of thehardware, could communicate with it only in the graphical aspects.Microsoft® also developed a similar function group called DirecTX 3D,very much like OpenGL® but with a more complete functionality, as itincluded sound control and network gaming areas, among others.

These functions and subroutines set are called Graphics ApplicationsProgramming Interface (GRAPHICS API). These APIs can be accessed fromdifferent programming languages, as C, C++, Visual .Net, C# and VisualBasic, among others.

Every virtual reality system mentioned currently uses a left-rightsequence through the same VGA or video channel scheme. These types ofsystems require software which includes specific instructions foralternating video images at on-screen display time in the backbuffer,applying a known offset algorithm using offsets and simulation-likeangles.

Additionally to the functions provided by the OpenGL® and DirecTX® API,a series of graphics handling functions is available within anapplication-programming interface provided by Windows®, called WINDOWSAPI.

The development of a videogame program based on these technologies isshown in FIG. 4, in which the videogame software developed in thepresent application by TDVision® Corp. implementation is included. FIG.4 shows a schematic of the flowchart starting with the softwareimplementation with the adequate metrics for the videogame (40), thesoftware is developed in any appropriate programming language (such asC, C++, Visual Basic, Others) (41), the source code for the videogame(42), game logic and object characteristics, sounds, events, etc. areentered. (43), in (44) the event selector is located, which does this bymeans of the Windows API (45), OpenGL (46), or DirecTX (47), and isfinally sent to the video display (48).

Although all of this refers to the software, something interesting isthat DirecTX provides many functions, and Microsoft® achieved that evenwhen initially some functions required specific hardware. The DirecTXAPI itself is capable of emulating the hardware characteristics bysoftware, as if the hardware was actually present.

Embodiments of the present invention maximize and optimize the use ofthe OpenGL® and DirecTX® technologies, resulting in a software withcertain specific characteristics, algorithms and digital processes inorder to meet the specifications set by TDVision used in the presentapplication.

Regarding the hardware, the Hal and the direct interface can be analyzedby drivers for each card, and in order to implement the TDVisiontechnology the minimum specifications and requirements are analyzed, aswell as any possible changes in the technology which allow it to obtainreal 3D in TDVision's 3DVisors.

Regarding the display or representation systems, the informationgenerated by the software and stored in the Graphic Device Context orImage Surface is transmitted directly to the last stage of the graphicscard, which converts the digital video signal into analog or digitalsignals (depending on the display monitor), and the image is thendisplayed on screen.

The current display methods are:

Analog monitor with digital computer signal

Digital monitor

Analog monitor with TV signal

3D virtual reality systems.

The output type(s) depend on the video card, which should be connectedto a compatible monitor.

FIG. 4 a shows the creation of memory locations for the temporarygraphics processing (left and right backbuffers) in which basically itadds an extra memory location, i.e., sets a right buffer in (400) anddiscriminates in (401) if TDVision technology is present; in anaffirmative case, it sets the left buffer in (402) and ends in (403);when TDVision technology is not present the process ends at (403), asthere was nothing to discriminate.

FIG. 4 b shows the flowchart for the discrimination and display of theleft camera and right camera image; the left view is set in (410), theimage is drawn in the left backbuffer (411) as a function of the cameraposition, the image is displayed in the left screen (412), then it isdiscriminated if it has TDVision format in (413) and in the affirmativecase the right view position coordinates are calculated (414), the imageis drawn in the right backbuffer as a function of the left cameraposition (415), then the image is displayed in the right screen (416),the process ends at (417). If it is not necessary to discriminate in(413) as the image is provided in a current state-of-the-art format, thesubroutine jumps to the final stage (417) and ends, as there is no needto calculate other coordinates and display parallel information. In oneembodiment of hte invention, the present application refers to thegraphics-processing unit shown in FIG. 5 (GPU HARDWARE), and to thegraphics engine (GRAPHICS ENGINE, SOFTWARE)

The hardware modifications are:

RAM increase for the left and right backbuffers

Implementing an additional independent display device in the displaybuffer but sharing the memory in an immense manner so it takes thecorresponding backbuffer.

In this case the backbuffer's RAM memory and the video card'sfrontbuffer are large enough to support the left and right channelssimultaneously. In current embodiments, this requires a minimum of 32 MBin order to support four buffers with a depth of 1024×768×4 color depthbytes each. Additionally, the video output signal is dual-ported (twoVGA ports), or has the capability of handling multiple monitors, as itis the case of the ATI RADEON 9500® card, which has two output displaysystems, one VGA and one S-Video video ports to choose from. A graphicscard is used which has a dual output only to meet the 60 frames persecond display per left-right channel in order to be connected to a3DVisor, these outputs are SVGA, S-Video, RCA or DVideo type outputs.

The computing scheme is presented with modifications for TDV compilationas described in FIG. 5. A CPU (50), the memory driver (52), and theextended memory (52) feeds the audio driver (53) and the speakers (54).Also the input and output driver (55) which in turn control the diskports (56) and the interactive elements with the user (57) as the mouse,keyboard, gamepad and joystick. The graphics driver interacts directlywith the monitor (59) and the three-dimensional visors 3DVISORS (59 b).

Concerning specifically the graphics hardware (HAL), changes are neededto compile the TDVision technology. For example, the application (500)sending the information to the graphics drivers (501) operating due tothe graphics hardware support (502) effectively needs physical changesto be compiled with the TDVision technology. In order to implement theTDVision technology by means of OpenGL and DirecTX, modifications can bemade in parts of the software section of a videogame as mentionedearlier, in some hardware sections.

Regarding the software, some special characteristics are added within atypical work algorithm, as well as a call to a TDVision subroutine, asit is shown in FIG. 6.

Load surfaces information (600)

Load meshes information (601)

Create TDVision backbuffer (602) in which a left backbuffer is createdin memory, if it is TDVision technology then it creates a rightbackbuffer in memory.

Apply initial coordinates (603)

Apply game logic (604)

Validation and artificial intelligence (605)

Position calculation (606)

Collision verification (607)

Drawing the information in the TDVision backbuffer and display on screen(608), in which the right camera view is set. Drawing the image in theright backbuffer as a function of the current right camera vector, anddisplaying the image on the right screen (front buffer). If it isTDVision technology, then: Calculate the left pair coordinates, set theleft camera view, draw the image in the left backbuffer as a function ofthe current vector of the left camera, display the information on theright screen (front buffer) which may use hardware modification.

Thus, a pair of buffers corresponding to the left eye and right eye arecreated, which, when evaluated in the game loop get the vectorialcoordinates corresponding to the visualization of each right camera(current) and the left camera (complement calculated with the SETXYZTDVfunction) shown below.

It should be realized that said screen output buffers or front buffersare assigned from the beginning to the video display surface (devicecontext) or to the surface in question (surface), but for displaying theinformation in a TDVision 3Dvisor two video outputs should be physicallypresent. The right output (normal VGA) and the left output (additionalVGA, digital complement or S-Video) should be present in order to becompatible with TDVision. In the example DirecTX is used, but the sameprocess and concept can be applied to the OpenGL format.

FIG. 7 shows an outline of the algorithm (70) conducting a display lineof the graphical applications communications interface, effectively, bymeans of trigonometry (72) with the vertex operations (77), the image isconstructed (71) and by means of pixel operations or image elements (75)through the commands (73), the display list (74) and a memory whichassigns a texture to the image (76), resulting in the display being sentto the memory frame (70F) by the operations (79). The Windows software(700) communicates with (702) and the graphic language card (701), whichin turn contains a graphic information library, which is useful to feed(703) and (704).

FIG. 8 shows the TDVision technology using the OpenGL algorithm (80) todisplay the left and right image for the object, it cleans thebackbuffer (81), gets the pointer for the backbuffer (82), closes thebackbuffer (83), redraws the scene (84), opens the backbuffer (85),unlocks the backbuffer pointer (86), sends the image to the left displaysurface; in (800) it discriminates if it is TDVision technology and inan affirmative case it cleans the memory (801) and gets a pointer forthe backbuffer (802), closes the backbuffer (803), gets the coordinatesfor the new perspective (804), redraws the scene (805), opens the memory(806), unlocks the backbuffer pointer (807), and sends the image to theright display surface (808).

FIG. 9 shows the changes (90) that can be made in the video card tocompile TDVision technology. Namely, the left normal backbuffer (91)preceding the normal left primary backbuffer (92) which in turn isconnected to the monitor's VGA output (95) and should have another VGAoutput so it can receive the right primary backbuffer (94), which inturn has the TDVision technology backbuffer as a precedent. Both leftand right backbuffers can be connected to a 3DVisor (96) with a dual VGAinput to receive and display the information sent by the backbuffers(91) and (93).

This software modifications use the following API functions in Direct X:

TDVision backbuffer creation:

FUNCTION CREATE BACKBUFFERTDV( ) Left buffer Set d3dDevice =d3d.CreateDevice(D3DADAPTER_DEFAULT,_(—) D3DDEVTYPE_HAL,hWndL,_(—)D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp) If GAMEISTDV then RightBuffer Set d3dDeviceRight = d3d.CreateDevice(D3DADAPTER_DEFAULT,_(—)D3DDEVTYPE_HAL,hWndR,_(—) D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp2)Endif END SUB

Draw image in TDVision backbuffer:

FUNCTION DRAWBACKBUFFERTDV( ) DRAW LEFT SCENE d3dDivice.BeginScened3dDivece.SetStreamSource0, poly 1_vb, Len(poly1.v1)d3dDevice.DrawPrimitiveD3DPT_TRIANGLELIST,0,1 d3dDevice.EndScene  Copybackbuffer to frontbuffer, screen D3dDivice.Present By Val 0,By Val 0,0, By Val 0 ‘VERIFIES IF IT IS A TDVISION PROGRAM BY CHECKING THE FLAG IF GAMEISTDV THEN  ‘CALCULATE COORDINATES RIGHT CAMERA SETXYZTDV ( ) ′Draw right scene  d3dDevice2.BeginScene  d3dDevice2.Set StreamSource 0,poly2_vb,  Len(poly1,v1)  d3dDevice2.DrawPrimitive D3DPT_TRIANGLELIST,0,1 d3dDevice2.EndScene  d3dDevice2.Present ByVal 0,ByVal 0, 0, ByVal END SUB.

Modifications to xyz camera vector:

VecCameraSource.z = z position D3DXMatrixLook AtLH matView,vecCameraSource,_(—) VecCameraTarget, Create Vector (0,1,0) D3dDevice2.SetTransform D3DTS_VIEW, matView VecCameraSource.x = x positionD3DXMatrixLook AtLH matView, vecCameraSource,_(—) VecCameraTarget,Create Vector (0,1,0) D3dDevice 2.SetTransform D3DTS_VIEW, matViewVecCameraSource.y = y position D3DXMatrixLook AtLH matView,vecCameraSource,_(—) VecCameraTarget, Create Vector (0,1,0) D3dDevice2.SetTransform D3DTS_VIEW, matView

Thus, a pair of buffers corresponding to the left eye and right eye arecreated, which, when evaluated in the game loop get the vectorialcoordinates corresponding to the visualization of the right camera andthe left camera (complement calculated with the SETXYZTDV function) bymeans of the usual coordinate transform equations.

It should be realized that the screen output buffers or front buffersare assigned from the beginning to the device context or to the surfacein question , but for displaying the information in a TDVision 3Dvisorit is necessary that two video outputs are physically present, the rightoutput (normal VGA) and the left output (additional VGA, digitalcomplement or SVIDEO) in order to be compatible with TDVision.

The example was made using DirecTX, but the same process and concept canbe applied for the OpenGL format shown in FIG. 8.

In this case the backbuffer's RAM memory and the video card'sfrontbuffer should be large enough to support the left and rightchannels simultaneously. Thus, they should use a minimum of 32 MB inorder to support four backbuffers with a color depth of 1024×768×4 byteseach. As it was mentioned before, the video output signal is preferablydual (two VGA ports), or has the capability to handle multiple monitors,as it is the case of the ATI RADEON 9500® card, which has two outputdisplay systems, one VGA and one S-Video and one DVideo port to choosefrom.

A graphics card is created which has a dual output only to meet the 60frames per second display per left-right channel in order to beconnected to a 3DVisor, these outputs can be SVGA, S-Video, RCA orDVideo type outputs.

Therefore, the images corresponding to the camera viewpoint in both leftand right perspectives can be obtained and the hardware will recognizethe information to be displayed in two different and independent videooutputs, without multiplexing and displayed in real-time. Presently, allthe technologies use multiplexion and software simulation. In thetechnology proposed by the present application real information can beobtained and while using the 3Dvisors. The image can be displayed fromtwo different perspectives and the brain will associate the volume itoccupies in space, without any flickering on screen, effect associatedto the current state-of-the-art technologies.

A coordinate calculation method of the secondary stereoscopic camera(SETXYZTDV( )) allows obtaining three-dimensional computer visualsystems for the generation of stereoscopic images by animation, displayand modeling in software programs. This method allows obtaining spatialcoordinates (x, y, z) that are assigned to two computer-generatedvirtual visualization cameras to obtain a stereoscopic vision by usingany software program that simulates the third dimension and generatesthe images by means of the object's movement, or by the “virtual camera”movement observed at that moment by the computer-generated object.Examples include: Autocad, Micrografix Simply 3D, 3Dmax Studio, Point,Dark Basic, Maya, Marionette, Blender, Excel, Word, Paint, Power, CorelDraw, Photo paint, Photoshop, etc. However, all of these programs aredesigned to display only one camera with one fixed or movingperspective.

An additional 3D modeling and animation characteristic is added to theprevious programs by means of the coordinate transformation equations,namely:

x=x′ cos φ−y′ sin φ

y=x′ sin φ+y′ cos φ

The exact position is calculated for a second or secondary camera,directly linked to the first camera and by this means two simultaneousimages are obtained from different perspectives simulating the humanbeing's stereoscopic visual perspective. This procedure, by means of analgorithm, calculates in real-time the position of the secondary camerato place it in the adequate position, and to obtain the modeling imageand representation of the second camera, achieved using the coordinatetransforming equations, taking the camera to the origin the angle anddistance between the secondary camera and the object or objective arecalculated, then the primary camera, objective and secondary camera arerepositioned in the obtained position. Then, seven parameters need to beknown, namely, the first coordinates (X_(p), Y_(p), Z_(p)) of theprimary camera in the original coordinate system, the fourth parameteris the equivalent distance to the average separation of the eyes (6.5 to7.0 cm), and the three coordinates of the objective's position whenobserved by the cameras.

The output parameters will be the coordinates of the secondary cameraobserving the same objective point, i.e., (X_(s), Y_(s), Z_(s)),obtained following these steps:

Knowing the coordinates of the primary camera in the original coordinatesystem (X_(p), Y_(p), Z_(p)),

Knowing the objective's coordinates (xt, yt, zt)

Only the “x” and “z” coordinates are transformed, as the coordinateand/or height of the camera is kept constant (there is no visualdeviation for the observer)

The coordinates for the primary camera are taken to the (0, ys,0)position.

The objective is also translated

The slope for the line connecting the camera and the objective iscalculated

The angle between the axis and the vector joining the primary camerawith the objective is created.

The quadrant to which it belongs for the application of specialconsiderations in the angle's calculation is classified by an inversetangent function.

New coordinates are obtained, rotating the whole coordinate system fromits axis in the same angle between the axis and the vector, a newcoordinate system is obtained in which the object is placed on the ‘z’axis and the primary camera will remain at the origin of the newcoordinate system.

The coordinates of the secondary camera are obtained by placing it inthe human eyes' average distance position

These coordinates are rotated in the same initial angle

The “x” and “z” offsets are added, which were originally substracted totake the primary camera to the origin

Finally, these two new X_(s) y Z_(s) coordinates are assigned to thesecondary camera and the yp coordinate is maintained, which determinesthe height for the same value of a final coordinates point (X_(s),Y_(p), Z_(s)) to be assigned to the secondary camera.

The procedure can be implemented in languages as Delphi, C, C++, VisualC++, Omnis, etc., but the result will be the same.

The generalized application of this algorithm will be used in anyprogram requiring to obtain in real-time the position of a secondarycamera.

This algorithm must be implemented in any existing software whichhandles two dimensions but has been developed for stereoscopic visionapplications.

The particular embodiments of the invention have been illustrated anddescribed, for the technical experts it will be evident that severalmodifications or changes can be made without exceeding the scope of thepresent invention. The attached claims intend to cover theaforementioned information so that all the changes and modifications arewithin the scope of the present invention.

1. A method in a videogame system for displaying three-dimensionalvideogame images to a user, comprising: determining the spatialcoordinates of a target object in the videogame; determining the spatialcoordinates of a primary virtual camera with respect to the targetobject in the videogame; determining the angle created by a coordinateaxis and a line from the primary virtual camera to the target object;recalculating the primary virtual camera to the origin; calculating,with a processor of the videogame system, the coordinates of a secondvirtual camera by placing the second virtual camera at the same angle asthe primary virtual camera and in a position corresponding to 6.5-7.0 cmapart from the primary virtual camera; and displaying athree-dimensional view of the target object corresponding to the viewfrom the primary virtual camera and the secondary virtual camera.